RAPPORT-ATL-6


MicroServices ?

Les microservices, ou micro-services en français, sont une architecture logicielle qui consiste à diviser une application en petits services autonomes et indépendants les uns des autres. Chaque microservice est conçu pour accomplir une tâche spécifique de manière efficace et peut être développé, déployé et mis à l'échelle indépendamment des autres services.

Les mots clés importants dans cette définition sont:

En résumé, les microservices permettent de créer des applications modulaires, évolutives et résilientes en divisant l'application en petits composants indépendants qui peuvent être développés et déployés de manière autonome.

Part 1

1- Création d’un simple service web SOAP (Hello World) en utilisant l'API JAX-WS et apache AXIS2(Voir Annexe JAX-WS)

<dependencies>
        <dependency>
            <groupId>javax.xml.ws</groupId>
            <artifactId>jaxws-api</artifactId>
            <version>2.3.1</version>
        </dependency>
        <dependency>
            <groupId>com.sun.xml.ws</groupId>
            <artifactId>jaxws-rt</artifactId>
            <version>4.0.1</version>
        </dependency>
    </dependencies>

JAX-WS est une API de programmation Java pour créer des services web basés sur SOAP. Elle permet aux applications de communiquer via des messages XML. JAX-WS est couramment utilisé pour les services web d'entreprise.

@WebService
@SOAPBinding(style = SOAPBinding.Style.RPC)
public class HelloWorldService {
	@WebMethod
	public String sayHello(String name) {
		return "Hello, " + name + "!";
	}
}

Le code ci-dessus est un exemple de création d'un service web en utilisant JAX-WS. Voici une explication détaillée :

💡
En résumé, le code ci-dessus définit un service web JAX-WS qui expose une méthode "sayHello()" qui renvoie un message de salutation.
public class WebServicePublisher {
	public static void main(String[] args) {
		System.out.println("The server now is running");
		System.out.println("Check this link for wsdl : http://localhost:8080/hello?wsdl");
		Endpoint.publish("http://localhost:8080/hello", new HelloWorldService());
	}
}

Le code ci-dessus est un exemple de publication d'un service web JAX-WS en utilisant la classe Endpoint. Voici une explication détaillée :

💡
En résumé, le code ci-dessus publie un service web JAX-WS en utilisant la classe Endpoint et affiche des messages sur la console pour indiquer l'état de la publication du service web.

Testing the Soap service :

2 - Créez un simple service web REST (Hello World) en utilisant l'API JAX-RS et apache AXIS2 (Voir Annexe JAX-RS) :

<dependencies>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.glassfish.jersey.containers</groupId>
            <artifactId>jersey-container-servlet</artifactId>
            <version>2.34</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.jersey.media</groupId>
            <artifactId>jersey-media-json-jackson</artifactId>
            <version>2.34</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.jersey.inject</groupId>
            <artifactId>jersey-cdi2-se</artifactId>
            <version>2.34</version>
        </dependency>
        <dependency>
            <groupId>org.jboss.weld.se</groupId>
            <artifactId>weld-se-core</artifactId>
            <version>3.1.8.Final</version>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <version>${junit.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <version>${junit.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.jboss.resteasy</groupId>
            <artifactId>resteasy-servlet-initializer</artifactId>
            <version>${resteasy.version}</version>
        </dependency>
        <dependency>
            <groupId>org.jboss.resteasy</groupId>
            <artifactId>resteasy-jackson-provider</artifactId>
            <version>${resteasy.version}</version>
        </dependency>
        <!--  RESTEasy Client Dependency -->
        <dependency>
            <groupId>org.jboss.resteasy</groupId>
            <artifactId>resteasy-client</artifactId>
            <version>${resteasy.version}</version>
        </dependency>
    </dependencies>
@XmlRootElement
public class HelloWorld {
    private String message;

    public HelloWorld() {}

    public HelloWorld(String message) {
        super();
        this.message = message;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }
}

Le code ci-dessus est un exemple de création d'un modèle de données en utilisant JAXB (Java Architecture for XML Binding). Voici une explication détaillée :

💡
En résumé, le code ci-dessus définit une classe de modèle de données qui peut être sérialisée en XML à l'aide de JAXB.
@Path("hello")
public class HelloWorldResource {

    @GET
    @Produces(MediaType.APPLICATION_JSON)
    public Response helloWorld() {

        HelloWorld helloWorld = new HelloWorld("Hello World !");

        return Response.ok(helloWorld).build();
    }
}

Le code ci-dessus est un exemple de création d'une ressource RESTful en utilisant JAX-RS. Voici une explication détaillée :

💡
En résumé, le code ci-dessus définit une ressource RESTful qui renvoie une réponse JSON contenant un message de salutation "Hello World!".
@ApplicationPath("/restapi")
public class RestEasyServices extends Application {

    private Set < Object > singletons = new HashSet < Object > ();

    public RestEasyServices() {
        singletons.add(new HelloWorldResource());
    }

    @Override
    public Set < Object > getSingletons() {
        return singletons;
    }
}

Le code ci-dessus est un exemple de configuration d'une application JAX-RS en utilisant la classe Application. Voici une explication détaillée :

💡
En résumé, le code ci-dessus configure une application JAX-RS en utilisant la classe Application et définit une ressource JAX-RS HelloWorldResource qui sera publiée à l'URL de base /restapi.

Testing the Rest App :


Part 2

Hello World service web SOAP using spring boot


Result


Ressources


Made with Love 🦢

by @NBGamer